<?php
	//--------------------------------- Définitions des constantes d'environnement

	// l'entête est redéfini au cas où la configuration du serveur ne serait pas bonne
	header('Content-Type: text/html; charset=UTF-8');
	
	// la localisation est redéfinie au cas où la configuration du serveur ne serait pas bonne
	setlocale(LC_ALL, "fr_FR");
	
	// les variables php sont encodées en UTF-8
	mb_internal_encoding("UTF-8");
	
	// lors de l'utilisation d'expression régulières, celles-ci seront encodées en UTF-8
	mb_regex_encoding("UTF-8");

	//--------------------------------- Ouverture d'une session utilisateur
	
	// on démarre une session utilisateur
	if(!session_start()){
		die("ERREUR: impossible de démarrer une session utilisateur");
	}
	
	//--------------------------------- Inclusion des fichiers externes
	
	// Inclusion fichier de configuration
	require_once("config.php");
	
	// Inclusion les fonctions php externes
	require_once("librairies/fonctions.php");
	
	//--------------------------------- Connexion à la BDD
	
	// Connexion à la base de données
	$connexion = connexionBDD($bdd_hostname, $bdd_login, $bdd_password, $bdd_database);
	
	if($connexion === false){
		die("ERREUR: connexion impossible à la base de données");
	}
	
	//--------------------------------- Récupération de la configuration
	
	// Récupéaration de la configuration générale du site depuis la BDD, table CONFIGURATION
	$query_recuperation_configuration = "SELECT * FROM configuration LIMIT 1";
	
	$result_recuperation_configuration = mysql_query($query_recuperation_configuration, $connexion) or logError("RECUPERATION CONFIGURATION-".$query_recuperation_configuration."-".mysql_error());
	
	// la configuration est affectée dans la variable globale
	if(mysql_num_rows($result_recuperation_configuration) == 1){
		$tab_recuperation_configuration = mysql_fetch_assoc($result_recuperation_configuration);
		// Même si php a un typage faible, on caste le résultat, qui est un entier, en booléen pour éviter tout problème lors d'appel à certaines fonctions
		$GLOBALS['CONFIG']['maintenance'] = (bool)$tab_recuperation_configuration['ENMAINTENANCE'];
		$GLOBALS['CONFIG']['inscriptions'] = (bool)$tab_recuperation_configuration['INSCRIPTIONSOUVERTES'];
		$GLOBALS['CONFIG']['validation'] = (bool)$tab_recuperation_configuration['VALIDERINSCRIPTIONS'];
		$GLOBALS['CONFIG']['niveauUtilisateurs'] = (int)$tab_recuperation_configuration['DEFAUTNIVEAUACCES'];
		$GLOBALS['CONFIG']['nbParPage'] = (int)$tab_recuperation_configuration['NBMESSAGESPAGE'];
	}else{
		$GLOBALS['CONFIG']['maintenance'] = $cst_SB;
		$GLOBALS['CONFIG']['inscriptions'] = $cst_REG;
		$GLOBALS['CONFIG']['validation'] = $cst_RGVLD;
		$GLOBALS['CONFIG']['niveauUtilisateurs'] = $cst_ULVL;
		$GLOBALS['CONFIG']['nbParPage'] = $cst_NBPP;
	}
	mysql_free_result($result_recuperation_configuration);
	
	//--------------------------------- Récupération des informations de l'utilisateur
	
	if(isset($_SESSION['user_id'])){ // l'utilisateur est connecté
	
		$query_recuperation_utilisateur = "SELECT p.CODEPERSONNE AS idPersonne, u.LOGIN AS login, u.MDPCRYPT AS password, p.NOMPERSONNE AS nom, p.PRENOMPERSONNE AS prenom, p.EMAILPERSONNE AS email, p.ADRESSEPERSONNE AS adresse, p.TELPORTABLE AS telPerso, p.TELBUREAU AS telBureau, u.ESTADMINISTRATEUR AS admin, u.NIVEAUUTILISATEUR AS level, c.CODEPOSTAL AS cp, c.NOMCOMMUNE AS ville, a.NOMPAYS AS pays, s.CODESTRUCTURE AS idStructure, s.NOMSTRUCTURE AS structure ";
		$query_recuperation_utilisateur .= "FROM infos_utilisateur u ";
		$query_recuperation_utilisateur .= "INNER JOIN personne p ON p.CODEPERSONNE = u.CODEPERSONNE ";
		$query_recuperation_utilisateur .= "LEFT JOIN commune c ON p.CODECOMMUNE = c.CODECOMMUNE ";
		$query_recuperation_utilisateur .= "LEFT JOIN pays a ON c.CODEPAYS = a.CODEPAYS ";
		$query_recuperation_utilisateur .= "LEFT JOIN structure s ON p.CODESTRUCTURE = s.CODESTRUCTURE ";
		$query_recuperation_utilisateur .= "WHERE u.CODEINFOSUTILISATEUR = ".$_SESSION['user_id']." ";

		$result_recuperation_utilisateur = mysql_query($query_recuperation_utilisateur, $connexion) or logError("RECUPERATION BOTANISTE-".$query_recuperation_utilisateur."-".mysql_error());
		
		if(mysql_num_rows($result_recuperation_utilisateur) == 1){
		
			$GLOBALS['USER'] = mysql_fetch_assoc($result_recuperation_utilisateur);
			
			$GLOBALS['USER']['idPersonne'] = (int)$GLOBALS['USER']['idPersonne'];
			if(!is_null($GLOBALS['USER']['idStructure'])){
				$GLOBALS['USER']['idStructure'] = (int)$GLOBALS['USER']['idStructure'];
			}
			$GLOBALS['USER']['admin'] = (bool)$GLOBALS['USER']['admin'];
			$GLOBALS['USER']['level'] = (int)$GLOBALS['USER']['level'];
			
		}else{
		
			// On supprime la variable indiquant que l'utilisateur est connecté
			unset($_SESSION['user_id']);
			// Par défaut, l'utilisateur - qui n'est pas connecté - est au niveau 0
			$GLOBALS['USER']['level'] = 0;
			// Par défaut, l'utilisateur n'est pas un administrateur
			$GLOBALS['USER']['admin'] = false;
		
		}
		
		mysql_free_result($result_recuperation_utilisateur);
	
	}else{ // l'utilisateur n'est pas connecté
	
		// Par défaut, l'utilisateur - qui n'est pas connecté - est au niveau 0
		$GLOBALS['USER']['level'] = 0;
		// Par défaut, l'utilisateur n'est pas un administrateur
		$GLOBALS['USER']['admin'] = false;
		
	}
	
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">

	<head>
	
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
		
		<title>Jardin Botanique - Gestion des graines</title>
		
		<link rel="stylesheet" href="styles/feuille.css" type="text/css" media="screen" />
		<link rel="stylesheet" href="styles/menu.css" type="text/css" media="screen" />
		
		<!-- On redéfini les éléments CSS si l'affichage doit être différent de celui de la fenêtre normale -->
		<style type="text/css" media="screen"> 
		<!--
			div.statut{
			
				width:		100%;
				
			}
			
			div.information{
			
				padding:		5px 5px 5px 5px;
				
			}
			
			#tpl_body {

				min-height:		0px;
				
			}
		-->
		</style>
		
		<script type="text/javascript" src="librairies/scripts.js"></script>
		
	</head>
	
	<body>
		
		<div id="tpl_body" style="margin: 0 auto; width: 95%;">
		
			<div id="tpl_contenu" style="position: relative; padding: 3px;">
				<noscript><div class="important">Javascript est désactivé<p>Votre navigateur fonctionne actuellement sans javascript<br />Réactivez javascript pour éviter tout problème</p></div></noscript>
				<?php
					if($GLOBALS['CONFIG']['maintenance']){
						echo "<div class=\"important\">Le site est actuellement en maintenance<p>Seuls les administrateurs peuvent utiliser l'application</p></div>";
					}
				?>
				<?php
					// Protocole de vérification de l'inclusion des pages
					if($GLOBALS['CONFIG']['maintenance'] && !$_SESSION['user_admin']){ // en cas de maintenance, seul l'administrateur a accès au site
						include("pages/403.htm");
					}else{
						if(isset($_GET['p'])){ // une page est indiquée
							if(mb_substr($_GET['p'], -6) == "_popup"){ // le nom de la page se termine par "_popup"
								if(file_exists("pages/".$_GET['p'].".php")){ // la page existe sur le serveur
									$dir = dirname($_GET['p']); // on récupère le chemin de la page à inclure
									if($dir == '.' || $dir == "gestion"){ // la page se trouve dans des dossiers autorisés
										include("pages/".$_GET['p'].".php");
									}else{
										include("pages/401.htm");
									}
								}else{
									include("pages/404.htm");
								}
							}else{
								include("pages/400.htm");
							}
						}else{
							include("pages/400.htm");
						}
					}

				?>
			</div>
		
		</div>
		
		<hr style="margin-left: auto; margin-right: auto; width: 95%;" />
		
		<div style="text-align: center; font-weight: bold;">» <a href="#" onclick="self.close();">Fermer</a> «</div>
	
	</body>
	
</html>
<?php

	// Déconnexion de la BDD
	mysql_close($connexion);

?>